package co.edu.presentation.backEndBeans;

import co.edu.exceptions.ExceptionMessages;

import co.edu.presentation.businessDelegate.BusinessDelegatorView;

import co.edu.usbcali.control.ActividadesLogic;
import co.edu.usbcali.control.AmbitosLogic;
import co.edu.usbcali.control.ClasesLogic;
import co.edu.usbcali.control.CostosLogic;
import co.edu.usbcali.control.CostosPorProyectoLogic;
import co.edu.usbcali.control.EmpresaLogic;
import co.edu.usbcali.control.IActividadesLogic;
import co.edu.usbcali.control.IAmbitosLogic;
import co.edu.usbcali.control.IClasesLogic;
import co.edu.usbcali.control.ICostosLogic;
import co.edu.usbcali.control.ICostosPorProyectoLogic;
import co.edu.usbcali.control.IEmpresaLogic;
import co.edu.usbcali.control.ILenguajesDeprogramacionLogic;
import co.edu.usbcali.control.IProyectosLogic;
import co.edu.usbcali.control.IReglaEnProyectoLogic;
import co.edu.usbcali.control.IReglasLogic;
import co.edu.usbcali.control.ISubactividadLogic;
import co.edu.usbcali.control.ISubactividadPorActividadLogic;
import co.edu.usbcali.control.ITaxonomiaLogic;
import co.edu.usbcali.control.ITiposLogic;
import co.edu.usbcali.control.IUsuariosLogic;
import co.edu.usbcali.control.LenguajesDeprogramacionLogic;
import co.edu.usbcali.control.ProyectosLogic;
import co.edu.usbcali.control.ReglaEnProyectoLogic;
import co.edu.usbcali.control.ReglasLogic;
import co.edu.usbcali.control.SubactividadLogic;
import co.edu.usbcali.control.SubactividadPorActividadLogic;
import co.edu.usbcali.control.TaxonomiaLogic;
import co.edu.usbcali.control.TiposLogic;
import co.edu.usbcali.control.UsuariosLogic;
import co.edu.usbcali.dto.SubactividadPorActividadDTO;
import co.edu.usbcali.modeloo.Actividades;
import co.edu.usbcali.modeloo.Ambitos;
import co.edu.usbcali.modeloo.Clases;
import co.edu.usbcali.modeloo.Costos;
import co.edu.usbcali.modeloo.CostosPorProyecto;
import co.edu.usbcali.modeloo.Empresa;
import co.edu.usbcali.modeloo.LenguajesDeprogramacion;
import co.edu.usbcali.modeloo.Proyectos;
import co.edu.usbcali.modeloo.ReglaEnProyecto;
import co.edu.usbcali.modeloo.Reglas;
import co.edu.usbcali.modeloo.Subactividad;
import co.edu.usbcali.modeloo.SubactividadPorActividad;
import co.edu.usbcali.modeloo.Taxonomia;
import co.edu.usbcali.modeloo.Tipos;
import co.edu.usbcali.modeloo.Usuarios;

import co.edu.utilities.DataPage;
import co.edu.utilities.DataSource;
import co.edu.utilities.PagedListDataModel;
import co.edu.utilities.Utilities;

import com.icesoft.faces.async.render.RenderManager;
import com.icesoft.faces.async.render.Renderable;
import com.icesoft.faces.component.ext.HtmlCommandButton;
import com.icesoft.faces.component.ext.HtmlInputText;
import com.icesoft.faces.component.selectinputdate.SelectInputDate;
import com.icesoft.faces.context.DisposableBean;
import com.icesoft.faces.webapp.xmlhttp.FatalRenderingException;
import com.icesoft.faces.webapp.xmlhttp.PersistentFacesState;
import com.icesoft.faces.webapp.xmlhttp.RenderingException;
import com.icesoft.faces.webapp.xmlhttp.TransientRenderingException;

import java.math.BigDecimal;

import java.util.ArrayList;
import java.util.Date;
import java.util.List;
import java.util.Set;
import java.util.TimeZone;
import java.util.Vector;

import javax.faces.application.FacesMessage;
import javax.faces.context.FacesContext;
import javax.faces.event.ValueChangeEvent;
import javax.faces.model.DataModel;


/**
 *
 *
 * @author Zathura Code Generator http://code.google.com/p/zathura
 *
 */
public class SubactividadPorActividadView extends DataSource
    implements Renderable, DisposableBean {
    private HtmlInputText txtAmbitosdeasignacion2;
    private HtmlInputText txtAmbitosdeasignacionenpf;
    private HtmlInputText txtDefectosdealtaseveridad;
    private HtmlInputText txtDefectosentregados;
    private HtmlInputText txtDefectosentregados2;
    private HtmlInputText txtEliminaciondedefectos;
    private HtmlInputText txtIndicedeproduccionpf;
    private HtmlInputText txtIndicedeproduccionpf2;
    private HtmlInputText txtIndiceincrementocambiomensual;
    private HtmlInputText txtPotencialdedefectos1;
    private HtmlInputText txtPotencialdedefectos2;
    private HtmlInputText txtProbabilidaddereparacionesdefectuosas;
    private HtmlInputText txtReutilizacion;
    private HtmlInputText txtTamanoderequisitosencasosdeuso;
    private HtmlInputText txtTamanoinicialdesubactv1;
    private HtmlInputText txtTamanoinicialdesubactv2;
    private HtmlInputText txtVolumenesdegraficos;
    private HtmlInputText txtIdactividad_Actividades;
    private HtmlInputText txtIdsubactividad_Subactividad;
    private HtmlInputText txtId;
    private SelectInputDate txtFechaestimadasubactFin;
    private SelectInputDate txtFechaestimadasubactInicio;
    private SelectInputDate txtFechalimiteestimada;
    private HtmlCommandButton btnSave;
    private HtmlCommandButton btnModify;
    private HtmlCommandButton btnDelete;
    private HtmlCommandButton btnClear;
    private boolean renderDataTable;
    private boolean flag = true;
    private RenderManager renderManager;
    private PersistentFacesState state = PersistentFacesState.getInstance();
    private List<SubactividadPorActividad> subactividadPorActividad;
    private List<SubactividadPorActividadDTO> subactividadPorActividadDTO;

    public SubactividadPorActividadView() {
        super("");
    }

    public String action_clear() {
        txtAmbitosdeasignacion2.setValue(null);
        txtAmbitosdeasignacion2.setDisabled(true);
        txtAmbitosdeasignacionenpf.setValue(null);
        txtAmbitosdeasignacionenpf.setDisabled(true);
        txtDefectosdealtaseveridad.setValue(null);
        txtDefectosdealtaseveridad.setDisabled(true);
        txtDefectosentregados.setValue(null);
        txtDefectosentregados.setDisabled(true);
        txtDefectosentregados2.setValue(null);
        txtDefectosentregados2.setDisabled(true);
        txtEliminaciondedefectos.setValue(null);
        txtEliminaciondedefectos.setDisabled(true);
        txtIndicedeproduccionpf.setValue(null);
        txtIndicedeproduccionpf.setDisabled(true);
        txtIndicedeproduccionpf2.setValue(null);
        txtIndicedeproduccionpf2.setDisabled(true);
        txtIndiceincrementocambiomensual.setValue(null);
        txtIndiceincrementocambiomensual.setDisabled(true);
        txtPotencialdedefectos1.setValue(null);
        txtPotencialdedefectos1.setDisabled(true);
        txtPotencialdedefectos2.setValue(null);
        txtPotencialdedefectos2.setDisabled(true);
        txtProbabilidaddereparacionesdefectuosas.setValue(null);
        txtProbabilidaddereparacionesdefectuosas.setDisabled(true);
        txtReutilizacion.setValue(null);
        txtReutilizacion.setDisabled(true);
        txtTamanoderequisitosencasosdeuso.setValue(null);
        txtTamanoderequisitosencasosdeuso.setDisabled(true);
        txtTamanoinicialdesubactv1.setValue(null);
        txtTamanoinicialdesubactv1.setDisabled(true);
        txtTamanoinicialdesubactv2.setValue(null);
        txtTamanoinicialdesubactv2.setDisabled(true);
        txtVolumenesdegraficos.setValue(null);
        txtVolumenesdegraficos.setDisabled(true);
        txtIdactividad_Actividades.setValue(null);
        txtIdactividad_Actividades.setDisabled(true);
        txtIdsubactividad_Subactividad.setValue(null);
        txtIdsubactividad_Subactividad.setDisabled(true);

        txtFechaestimadasubactFin.setValue(null);
        txtFechaestimadasubactFin.setDisabled(true);
        txtFechaestimadasubactInicio.setValue(null);
        txtFechaestimadasubactInicio.setDisabled(true);
        txtFechalimiteestimada.setValue(null);
        txtFechalimiteestimada.setDisabled(true);

        txtId.setValue(null);
        txtId.setDisabled(false);

        btnSave.setDisabled(true);
        btnDelete.setDisabled(true);
        btnModify.setDisabled(true);
        btnClear.setDisabled(false);

        return "";
    }

    public void listener_txtId(ValueChangeEvent event) {
        if ((event.getNewValue() != null) && !event.getNewValue().equals("")) {
            SubactividadPorActividad entity = null;

            try {
                Integer id = new Integer(txtId.getValue().toString());

                entity = BusinessDelegatorView.getSubactividadPorActividad(id);
            } catch (Exception e) {
                // TODO: handle exception
            }

            if (entity == null) {
                txtAmbitosdeasignacion2.setDisabled(false);
                txtAmbitosdeasignacionenpf.setDisabled(false);
                txtDefectosdealtaseveridad.setDisabled(false);
                txtDefectosentregados.setDisabled(false);
                txtDefectosentregados2.setDisabled(false);
                txtEliminaciondedefectos.setDisabled(false);
                txtIndicedeproduccionpf.setDisabled(false);
                txtIndicedeproduccionpf2.setDisabled(false);
                txtIndiceincrementocambiomensual.setDisabled(false);
                txtPotencialdedefectos1.setDisabled(false);
                txtPotencialdedefectos2.setDisabled(false);
                txtProbabilidaddereparacionesdefectuosas.setDisabled(false);
                txtReutilizacion.setDisabled(false);
                txtTamanoderequisitosencasosdeuso.setDisabled(false);
                txtTamanoinicialdesubactv1.setDisabled(false);
                txtTamanoinicialdesubactv2.setDisabled(false);
                txtVolumenesdegraficos.setDisabled(false);
                txtIdactividad_Actividades.setDisabled(false);
                txtIdsubactividad_Subactividad.setDisabled(false);

                txtFechaestimadasubactFin.setDisabled(false);
                txtFechaestimadasubactInicio.setDisabled(false);
                txtFechalimiteestimada.setDisabled(false);

                txtId.setDisabled(false);

                btnSave.setDisabled(false);
                btnDelete.setDisabled(true);
                btnModify.setDisabled(true);
                btnClear.setDisabled(false);
            } else {
                txtAmbitosdeasignacion2.setValue(entity.getAmbitosdeasignacion2());
                txtAmbitosdeasignacion2.setDisabled(false);
                txtAmbitosdeasignacionenpf.setValue(entity.getAmbitosdeasignacionenpf());
                txtAmbitosdeasignacionenpf.setDisabled(false);
                txtDefectosdealtaseveridad.setValue(entity.getDefectosdealtaseveridad());
                txtDefectosdealtaseveridad.setDisabled(false);
                txtDefectosentregados.setValue(entity.getDefectosentregados());
                txtDefectosentregados.setDisabled(false);
                txtDefectosentregados2.setValue(entity.getDefectosentregados2());
                txtDefectosentregados2.setDisabled(false);
                txtEliminaciondedefectos.setValue(entity.getEliminaciondedefectos());
                txtEliminaciondedefectos.setDisabled(false);
                txtFechaestimadasubactFin.setValue(entity.getFechaestimadasubactFin());
                txtFechaestimadasubactFin.setDisabled(false);
                txtFechaestimadasubactInicio.setValue(entity.getFechaestimadasubactInicio());
                txtFechaestimadasubactInicio.setDisabled(false);
                txtFechalimiteestimada.setValue(entity.getFechalimiteestimada());
                txtFechalimiteestimada.setDisabled(false);
                txtIndicedeproduccionpf.setValue(entity.getIndicedeproduccionpf());
                txtIndicedeproduccionpf.setDisabled(false);
                txtIndicedeproduccionpf2.setValue(entity.getIndicedeproduccionpf2());
                txtIndicedeproduccionpf2.setDisabled(false);
                txtIndiceincrementocambiomensual.setValue(entity.getIndiceincrementocambiomensual());
                txtIndiceincrementocambiomensual.setDisabled(false);
                txtPotencialdedefectos1.setValue(entity.getPotencialdedefectos1());
                txtPotencialdedefectos1.setDisabled(false);
                txtPotencialdedefectos2.setValue(entity.getPotencialdedefectos2());
                txtPotencialdedefectos2.setDisabled(false);
                txtProbabilidaddereparacionesdefectuosas.setValue(entity.getProbabilidaddereparacionesdefectuosas());
                txtProbabilidaddereparacionesdefectuosas.setDisabled(false);
                txtReutilizacion.setValue(entity.getReutilizacion());
                txtReutilizacion.setDisabled(false);
                txtTamanoderequisitosencasosdeuso.setValue(entity.getTamanoderequisitosencasosdeuso());
                txtTamanoderequisitosencasosdeuso.setDisabled(false);
                txtTamanoinicialdesubactv1.setValue(entity.getTamanoinicialdesubactv1());
                txtTamanoinicialdesubactv1.setDisabled(false);
                txtTamanoinicialdesubactv2.setValue(entity.getTamanoinicialdesubactv2());
                txtTamanoinicialdesubactv2.setDisabled(false);
                txtVolumenesdegraficos.setValue(entity.getVolumenesdegraficos());
                txtVolumenesdegraficos.setDisabled(false);
                txtIdactividad_Actividades.setValue(entity.getActividades()
                                                          .getIdactividad());
                txtIdactividad_Actividades.setDisabled(false);
                txtIdsubactividad_Subactividad.setValue(entity.getSubactividad()
                                                              .getIdsubactividad());
                txtIdsubactividad_Subactividad.setDisabled(false);

                txtId.setValue(entity.getId());
                txtId.setDisabled(true);

                btnSave.setDisabled(true);
                btnDelete.setDisabled(false);
                btnModify.setDisabled(false);
                btnClear.setDisabled(false);
            }
        }
    }

    public String action_save() {
        try {
            BusinessDelegatorView.saveSubactividadPorActividad((((txtAmbitosdeasignacion2.getValue()) == null) ||
                (txtAmbitosdeasignacion2.getValue()).equals("")) ? null
                                                                 : new Integer(
                    txtAmbitosdeasignacion2.getValue().toString()),
                (((txtAmbitosdeasignacionenpf.getValue()) == null) ||
                (txtAmbitosdeasignacionenpf.getValue()).equals("")) ? null
                                                                    : new Integer(
                    txtAmbitosdeasignacionenpf.getValue().toString()),
                (((txtDefectosdealtaseveridad.getValue()) == null) ||
                (txtDefectosdealtaseveridad.getValue()).equals("")) ? null
                                                                    : new Integer(
                    txtDefectosdealtaseveridad.getValue().toString()),
                (((txtDefectosentregados.getValue()) == null) ||
                (txtDefectosentregados.getValue()).equals("")) ? null
                                                               : new Integer(
                    txtDefectosentregados.getValue().toString()),
                (((txtDefectosentregados2.getValue()) == null) ||
                (txtDefectosentregados2.getValue()).equals("")) ? null
                                                                : new Integer(
                    txtDefectosentregados2.getValue().toString()),
                (((txtEliminaciondedefectos.getValue()) == null) ||
                (txtEliminaciondedefectos.getValue()).equals("")) ? null
                                                                  : new Integer(
                    txtEliminaciondedefectos.getValue().toString()),
                (((txtFechaestimadasubactFin.getValue()) == null) ||
                (txtFechaestimadasubactFin.getValue()).equals("")) ? null
                                                                   : (Date) txtFechaestimadasubactFin.getValue(),
                (((txtFechaestimadasubactInicio.getValue()) == null) ||
                (txtFechaestimadasubactInicio.getValue()).equals("")) ? null
                                                                      : (Date) txtFechaestimadasubactInicio.getValue(),
                (((txtFechalimiteestimada.getValue()) == null) ||
                (txtFechalimiteestimada.getValue()).equals("")) ? null
                                                                : (Date) txtFechalimiteestimada.getValue(),
                (((txtId.getValue()) == null) || (txtId.getValue()).equals(""))
                ? null : new Integer(txtId.getValue().toString()),
                (((txtIndicedeproduccionpf.getValue()) == null) ||
                (txtIndicedeproduccionpf.getValue()).equals("")) ? null
                                                                 : new Integer(
                    txtIndicedeproduccionpf.getValue().toString()),
                (((txtIndicedeproduccionpf2.getValue()) == null) ||
                (txtIndicedeproduccionpf2.getValue()).equals("")) ? null
                                                                  : new Integer(
                    txtIndicedeproduccionpf2.getValue().toString()),
                (((txtIndiceincrementocambiomensual.getValue()) == null) ||
                (txtIndiceincrementocambiomensual.getValue()).equals(""))
                ? null
                : new Integer(txtIndiceincrementocambiomensual.getValue()
                                                              .toString()),
                (((txtPotencialdedefectos1.getValue()) == null) ||
                (txtPotencialdedefectos1.getValue()).equals("")) ? null
                                                                 : new Integer(
                    txtPotencialdedefectos1.getValue().toString()),
                (((txtPotencialdedefectos2.getValue()) == null) ||
                (txtPotencialdedefectos2.getValue()).equals("")) ? null
                                                                 : new Integer(
                    txtPotencialdedefectos2.getValue().toString()),
                (((txtProbabilidaddereparacionesdefectuosas.getValue()) == null) ||
                (txtProbabilidaddereparacionesdefectuosas.getValue()).equals(""))
                ? null
                : new Integer(txtProbabilidaddereparacionesdefectuosas.getValue()
                                                                      .toString()),
                (((txtReutilizacion.getValue()) == null) ||
                (txtReutilizacion.getValue()).equals("")) ? null
                                                          : new Integer(
                    txtReutilizacion.getValue().toString()),
                (((txtTamanoderequisitosencasosdeuso.getValue()) == null) ||
                (txtTamanoderequisitosencasosdeuso.getValue()).equals(""))
                ? null
                : new Integer(txtTamanoderequisitosencasosdeuso.getValue()
                                                               .toString()),
                (((txtTamanoinicialdesubactv1.getValue()) == null) ||
                (txtTamanoinicialdesubactv1.getValue()).equals("")) ? null
                                                                    : new Integer(
                    txtTamanoinicialdesubactv1.getValue().toString()),
                (((txtTamanoinicialdesubactv2.getValue()) == null) ||
                (txtTamanoinicialdesubactv2.getValue()).equals("")) ? null
                                                                    : new Integer(
                    txtTamanoinicialdesubactv2.getValue().toString()),
                (((txtVolumenesdegraficos.getValue()) == null) ||
                (txtVolumenesdegraficos.getValue()).equals("")) ? null
                                                                : new Integer(
                    txtVolumenesdegraficos.getValue().toString()),
                (((txtIdactividad_Actividades.getValue()) == null) ||
                (txtIdactividad_Actividades.getValue()).equals("")) ? null
                                                                    : new Integer(
                    txtIdactividad_Actividades.getValue().toString()),
                (((txtIdsubactividad_Subactividad.getValue()) == null) ||
                (txtIdsubactividad_Subactividad.getValue()).equals("")) ? null
                                                                        : new Integer(
                    txtIdsubactividad_Subactividad.getValue().toString()));

            FacesContext.getCurrentInstance()
                        .addMessage("",
                new FacesMessage(ExceptionMessages.ENTITY_SUCCESFULLYSAVED));
        } catch (Exception e) {
            FacesContext.getCurrentInstance()
                        .addMessage("", new FacesMessage(e.getMessage()));
        }

        action_clear();

        return "";
    }

    public String action_delete() {
        try {
            BusinessDelegatorView.deleteSubactividadPorActividad((((txtId.getValue()) == null) ||
                (txtId.getValue()).equals("")) ? null
                                               : new Integer(
                    txtId.getValue().toString()));

            FacesContext.getCurrentInstance()
                        .addMessage("",
                new FacesMessage(ExceptionMessages.ENTITY_SUCCESFULLYDELETED));
        } catch (Exception e) {
            FacesContext.getCurrentInstance()
                        .addMessage("", new FacesMessage(e.getMessage()));
        }

        action_clear();

        return "";
    }

    public String action_modify() {
        try {
            BusinessDelegatorView.updateSubactividadPorActividad((((txtAmbitosdeasignacion2.getValue()) == null) ||
                (txtAmbitosdeasignacion2.getValue()).equals("")) ? null
                                                                 : new Integer(
                    txtAmbitosdeasignacion2.getValue().toString()),
                (((txtAmbitosdeasignacionenpf.getValue()) == null) ||
                (txtAmbitosdeasignacionenpf.getValue()).equals("")) ? null
                                                                    : new Integer(
                    txtAmbitosdeasignacionenpf.getValue().toString()),
                (((txtDefectosdealtaseveridad.getValue()) == null) ||
                (txtDefectosdealtaseveridad.getValue()).equals("")) ? null
                                                                    : new Integer(
                    txtDefectosdealtaseveridad.getValue().toString()),
                (((txtDefectosentregados.getValue()) == null) ||
                (txtDefectosentregados.getValue()).equals("")) ? null
                                                               : new Integer(
                    txtDefectosentregados.getValue().toString()),
                (((txtDefectosentregados2.getValue()) == null) ||
                (txtDefectosentregados2.getValue()).equals("")) ? null
                                                                : new Integer(
                    txtDefectosentregados2.getValue().toString()),
                (((txtEliminaciondedefectos.getValue()) == null) ||
                (txtEliminaciondedefectos.getValue()).equals("")) ? null
                                                                  : new Integer(
                    txtEliminaciondedefectos.getValue().toString()),
                (((txtFechaestimadasubactFin.getValue()) == null) ||
                (txtFechaestimadasubactFin.getValue()).equals("")) ? null
                                                                   : (Date) txtFechaestimadasubactFin.getValue(),
                (((txtFechaestimadasubactInicio.getValue()) == null) ||
                (txtFechaestimadasubactInicio.getValue()).equals("")) ? null
                                                                      : (Date) txtFechaestimadasubactInicio.getValue(),
                (((txtFechalimiteestimada.getValue()) == null) ||
                (txtFechalimiteestimada.getValue()).equals("")) ? null
                                                                : (Date) txtFechalimiteestimada.getValue(),
                (((txtId.getValue()) == null) || (txtId.getValue()).equals(""))
                ? null : new Integer(txtId.getValue().toString()),
                (((txtIndicedeproduccionpf.getValue()) == null) ||
                (txtIndicedeproduccionpf.getValue()).equals("")) ? null
                                                                 : new Integer(
                    txtIndicedeproduccionpf.getValue().toString()),
                (((txtIndicedeproduccionpf2.getValue()) == null) ||
                (txtIndicedeproduccionpf2.getValue()).equals("")) ? null
                                                                  : new Integer(
                    txtIndicedeproduccionpf2.getValue().toString()),
                (((txtIndiceincrementocambiomensual.getValue()) == null) ||
                (txtIndiceincrementocambiomensual.getValue()).equals(""))
                ? null
                : new Integer(txtIndiceincrementocambiomensual.getValue()
                                                              .toString()),
                (((txtPotencialdedefectos1.getValue()) == null) ||
                (txtPotencialdedefectos1.getValue()).equals("")) ? null
                                                                 : new Integer(
                    txtPotencialdedefectos1.getValue().toString()),
                (((txtPotencialdedefectos2.getValue()) == null) ||
                (txtPotencialdedefectos2.getValue()).equals("")) ? null
                                                                 : new Integer(
                    txtPotencialdedefectos2.getValue().toString()),
                (((txtProbabilidaddereparacionesdefectuosas.getValue()) == null) ||
                (txtProbabilidaddereparacionesdefectuosas.getValue()).equals(""))
                ? null
                : new Integer(txtProbabilidaddereparacionesdefectuosas.getValue()
                                                                      .toString()),
                (((txtReutilizacion.getValue()) == null) ||
                (txtReutilizacion.getValue()).equals("")) ? null
                                                          : new Integer(
                    txtReutilizacion.getValue().toString()),
                (((txtTamanoderequisitosencasosdeuso.getValue()) == null) ||
                (txtTamanoderequisitosencasosdeuso.getValue()).equals(""))
                ? null
                : new Integer(txtTamanoderequisitosencasosdeuso.getValue()
                                                               .toString()),
                (((txtTamanoinicialdesubactv1.getValue()) == null) ||
                (txtTamanoinicialdesubactv1.getValue()).equals("")) ? null
                                                                    : new Integer(
                    txtTamanoinicialdesubactv1.getValue().toString()),
                (((txtTamanoinicialdesubactv2.getValue()) == null) ||
                (txtTamanoinicialdesubactv2.getValue()).equals("")) ? null
                                                                    : new Integer(
                    txtTamanoinicialdesubactv2.getValue().toString()),
                (((txtVolumenesdegraficos.getValue()) == null) ||
                (txtVolumenesdegraficos.getValue()).equals("")) ? null
                                                                : new Integer(
                    txtVolumenesdegraficos.getValue().toString()),
                (((txtIdactividad_Actividades.getValue()) == null) ||
                (txtIdactividad_Actividades.getValue()).equals("")) ? null
                                                                    : new Integer(
                    txtIdactividad_Actividades.getValue().toString()),
                (((txtIdsubactividad_Subactividad.getValue()) == null) ||
                (txtIdsubactividad_Subactividad.getValue()).equals("")) ? null
                                                                        : new Integer(
                    txtIdsubactividad_Subactividad.getValue().toString()));

            FacesContext.getCurrentInstance()
                        .addMessage("",
                new FacesMessage(ExceptionMessages.ENTITY_SUCCESFULLYMODIFIED));
        } catch (Exception e) {
            FacesContext.getCurrentInstance()
                        .addMessage("", new FacesMessage(e.getMessage()));
        }

        action_clear();

        return "";
    }

    public String action_modifyWitDTO(Integer ambitosdeasignacion2,
        Integer ambitosdeasignacionenpf, Integer defectosdealtaseveridad,
        Integer defectosentregados, Integer defectosentregados2,
        Integer eliminaciondedefectos, Date fechaestimadasubactFin,
        Date fechaestimadasubactInicio, Date fechalimiteestimada, Integer id,
        Integer indicedeproduccionpf, Integer indicedeproduccionpf2,
        Integer indiceincrementocambiomensual, Integer potencialdedefectos1,
        Integer potencialdedefectos2,
        Integer probabilidaddereparacionesdefectuosas, Integer reutilizacion,
        Integer tamanoderequisitosencasosdeuso,
        Integer tamanoinicialdesubactv1, Integer tamanoinicialdesubactv2,
        Integer volumenesdegraficos, Integer idactividad_Actividades,
        Integer idsubactividad_Subactividad) throws Exception {
        try {
            BusinessDelegatorView.updateSubactividadPorActividad(ambitosdeasignacion2,
                ambitosdeasignacionenpf, defectosdealtaseveridad,
                defectosentregados, defectosentregados2, eliminaciondedefectos,
                fechaestimadasubactFin, fechaestimadasubactInicio,
                fechalimiteestimada, id, indicedeproduccionpf,
                indicedeproduccionpf2, indiceincrementocambiomensual,
                potencialdedefectos1, potencialdedefectos2,
                probabilidaddereparacionesdefectuosas, reutilizacion,
                tamanoderequisitosencasosdeuso, tamanoinicialdesubactv1,
                tamanoinicialdesubactv2, volumenesdegraficos,
                idactividad_Actividades, idsubactividad_Subactividad);
            renderManager.getOnDemandRenderer("SubactividadPorActividadView")
                         .requestRender();
            FacesContext.getCurrentInstance()
                        .addMessage("",
                new FacesMessage(ExceptionMessages.ENTITY_SUCCESFULLYMODIFIED));
        } catch (Exception e) {
            //renderManager.getOnDemandRenderer("SubactividadPorActividadView").requestRender();
            FacesContext.getCurrentInstance()
                        .addMessage("", new FacesMessage(e.getMessage()));
            throw e;
        }

        return "";
    }

    public List<SubactividadPorActividad> getSubactividadPorActividad() {
        if (flag) {
            try {
                subactividadPorActividad = BusinessDelegatorView.getSubactividadPorActividad();
                flag = false;
            } catch (Exception e) {
                flag = true;
                FacesContext.getCurrentInstance()
                            .addMessage("", new FacesMessage(e.getMessage()));
            }
        }

        return subactividadPorActividad;
    }

    public boolean isFlag() {
        return flag;
    }

    public void setSubactividadPorActividad(
        List<SubactividadPorActividad> subactividadPorActividad) {
        this.subactividadPorActividad = subactividadPorActividad;
    }

    public boolean isRenderDataTable() {
        try {
            if (flag) {
                if (BusinessDelegatorView.findTotalNumberSubactividadPorActividad() > 0) {
                    renderDataTable = true;
                } else {
                    renderDataTable = false;
                }
            }

            flag = false;
        } catch (Exception e) {
            renderDataTable = false;
            e.printStackTrace();
        }

        return renderDataTable;
    }

    public DataModel getData() {
        state = PersistentFacesState.getInstance();

        if (onePageDataModel == null) {
            onePageDataModel = new LocalDataModel(pageSize);
        }

        return onePageDataModel;
    }

    /**
     * This is where the Object data is retrieved from the database and
     * returned as a list of objects for display in the UI.
     */
    private DataPage<SubactividadPorActividad> getDataPage(int startRow,
        int pageSize) {
        // Retrieve the total number of objects from the database.  This
        // number is required by the DataPage object so the paginator will know
        // the relative location of the page data.
        int totalNumberSubactividadPorActividad = 0;

        try {
            totalNumberSubactividadPorActividad = BusinessDelegatorView.findTotalNumberSubactividadPorActividad()
                                                                       .intValue();
        } catch (Exception e) {
            FacesContext.getCurrentInstance()
                        .addMessage("", new FacesMessage(e.getMessage()));
        }

        // Calculate indices to be displayed in the ui.
        int endIndex = startRow + pageSize;

        if (endIndex > totalNumberSubactividadPorActividad) {
            endIndex = totalNumberSubactividadPorActividad;
        }

        try {
            subactividadPorActividad = BusinessDelegatorView.findPageSubactividadPorActividad(sortColumnName,
                    sortAscending, startRow, endIndex - startRow);

            // Remove this Renderable from the existing render groups.
            //leaveRenderGroups();        			
        } catch (Exception e) {
            FacesContext.getCurrentInstance()
                        .addMessage("", new FacesMessage(e.getMessage()));
        }

        // Add this Renderable to the new render groups.
        //joinRenderGroups();

        // Reset the dirtyData flag.
        onePageDataModel.setDirtyData(false);

        // This is required when using Hibernate JPA.  If the EntityManager is not
        // cleared or closed objects are cached and stale objects will show up
        // in the table.
        // This way, the detached objects are reread from the database.
        // This call is not required with TopLink JPA, which uses a Query Hint
        // to clear the l2 cache in the DAO.
        //EntityManagerHelper.getEntityManager().clear();
        flag = true;

        return new DataPage<SubactividadPorActividad>(totalNumberSubactividadPorActividad,
            startRow, subactividadPorActividad);
    }

    public DataModel getDataDTO() {
        state = PersistentFacesState.getInstance();

        if (onePageDataModel == null) {
            onePageDataModel = new LocalDataModelDTO(pageSize);
        }

        return onePageDataModel;
    }

    /**
     * This is where the Object data is retrieved from the database and
     * returned as a list of objects for display in the UI.
     */
    private DataPage<SubactividadPorActividadDTO> getDataPageDTO(int startRow,
        int pageSize) {
        // Retrieve the total number of objects from the database.  This
        // number is required by the DataPage object so the paginator will know
        // the relative location of the page data.
        int totalNumberSubactividadPorActividad = 0;

        try {
            totalNumberSubactividadPorActividad = BusinessDelegatorView.findTotalNumberSubactividadPorActividad()
                                                                       .intValue();
        } catch (Exception e) {
            FacesContext.getCurrentInstance()
                        .addMessage("", new FacesMessage(e.getMessage()));
        }

        // Calculate indices to be displayed in the ui.
        int endIndex = startRow + pageSize;

        if (endIndex > totalNumberSubactividadPorActividad) {
            endIndex = totalNumberSubactividadPorActividad;
        }

        try {
            subactividadPorActividad = BusinessDelegatorView.findPageSubactividadPorActividad(sortColumnName,
                    sortAscending, startRow, endIndex - startRow);

            if (Utilities.validationsList(subactividadPorActividad)) {
                subactividadPorActividadDTO = new ArrayList<SubactividadPorActividadDTO>();

                for (SubactividadPorActividad subactividadPorActividadTmp : subactividadPorActividad) {
                    SubactividadPorActividadDTO subactividadPorActividadDTO2 = new SubactividadPorActividadDTO();
                    subactividadPorActividadDTO2.setId(subactividadPorActividadTmp.getId()
                                                                                  .toString());

                    subactividadPorActividadDTO2.setAmbitosdeasignacion2((subactividadPorActividadTmp.getAmbitosdeasignacion2() != null)
                        ? subactividadPorActividadTmp.getAmbitosdeasignacion2()
                                                     .toString() : null);
                    subactividadPorActividadDTO2.setAmbitosdeasignacionenpf((subactividadPorActividadTmp.getAmbitosdeasignacionenpf() != null)
                        ? subactividadPorActividadTmp.getAmbitosdeasignacionenpf()
                                                     .toString() : null);
                    subactividadPorActividadDTO2.setDefectosdealtaseveridad((subactividadPorActividadTmp.getDefectosdealtaseveridad() != null)
                        ? subactividadPorActividadTmp.getDefectosdealtaseveridad()
                                                     .toString() : null);
                    subactividadPorActividadDTO2.setDefectosentregados((subactividadPorActividadTmp.getDefectosentregados() != null)
                        ? subactividadPorActividadTmp.getDefectosentregados()
                                                     .toString() : null);
                    subactividadPorActividadDTO2.setDefectosentregados2((subactividadPorActividadTmp.getDefectosentregados2() != null)
                        ? subactividadPorActividadTmp.getDefectosentregados2()
                                                     .toString() : null);
                    subactividadPorActividadDTO2.setEliminaciondedefectos((subactividadPorActividadTmp.getEliminaciondedefectos() != null)
                        ? subactividadPorActividadTmp.getEliminaciondedefectos()
                                                     .toString() : null);
                    subactividadPorActividadDTO2.setFechaestimadasubactFin(subactividadPorActividadTmp.getFechaestimadasubactFin());
                    subactividadPorActividadDTO2.setFechaestimadasubactInicio(subactividadPorActividadTmp.getFechaestimadasubactInicio());
                    subactividadPorActividadDTO2.setFechalimiteestimada(subactividadPorActividadTmp.getFechalimiteestimada());
                    subactividadPorActividadDTO2.setIndicedeproduccionpf((subactividadPorActividadTmp.getIndicedeproduccionpf() != null)
                        ? subactividadPorActividadTmp.getIndicedeproduccionpf()
                                                     .toString() : null);
                    subactividadPorActividadDTO2.setIndicedeproduccionpf2((subactividadPorActividadTmp.getIndicedeproduccionpf2() != null)
                        ? subactividadPorActividadTmp.getIndicedeproduccionpf2()
                                                     .toString() : null);
                    subactividadPorActividadDTO2.setIndiceincrementocambiomensual((subactividadPorActividadTmp.getIndiceincrementocambiomensual() != null)
                        ? subactividadPorActividadTmp.getIndiceincrementocambiomensual()
                                                     .toString() : null);
                    subactividadPorActividadDTO2.setPotencialdedefectos1((subactividadPorActividadTmp.getPotencialdedefectos1() != null)
                        ? subactividadPorActividadTmp.getPotencialdedefectos1()
                                                     .toString() : null);
                    subactividadPorActividadDTO2.setPotencialdedefectos2((subactividadPorActividadTmp.getPotencialdedefectos2() != null)
                        ? subactividadPorActividadTmp.getPotencialdedefectos2()
                                                     .toString() : null);
                    subactividadPorActividadDTO2.setProbabilidaddereparacionesdefectuosas((subactividadPorActividadTmp.getProbabilidaddereparacionesdefectuosas() != null)
                        ? subactividadPorActividadTmp.getProbabilidaddereparacionesdefectuosas()
                                                     .toString() : null);
                    subactividadPorActividadDTO2.setReutilizacion((subactividadPorActividadTmp.getReutilizacion() != null)
                        ? subactividadPorActividadTmp.getReutilizacion()
                                                     .toString() : null);
                    subactividadPorActividadDTO2.setTamanoderequisitosencasosdeuso((subactividadPorActividadTmp.getTamanoderequisitosencasosdeuso() != null)
                        ? subactividadPorActividadTmp.getTamanoderequisitosencasosdeuso()
                                                     .toString() : null);
                    subactividadPorActividadDTO2.setTamanoinicialdesubactv1((subactividadPorActividadTmp.getTamanoinicialdesubactv1() != null)
                        ? subactividadPorActividadTmp.getTamanoinicialdesubactv1()
                                                     .toString() : null);
                    subactividadPorActividadDTO2.setTamanoinicialdesubactv2((subactividadPorActividadTmp.getTamanoinicialdesubactv2() != null)
                        ? subactividadPorActividadTmp.getTamanoinicialdesubactv2()
                                                     .toString() : null);
                    subactividadPorActividadDTO2.setVolumenesdegraficos((subactividadPorActividadTmp.getVolumenesdegraficos() != null)
                        ? subactividadPorActividadTmp.getVolumenesdegraficos()
                                                     .toString() : null);
                    subactividadPorActividadDTO2.setIdactividad_Actividades((subactividadPorActividadTmp.getActividades()
                                                                                                        .getIdactividad() != null)
                        ? subactividadPorActividadTmp.getActividades()
                                                     .getIdactividad().toString()
                        : null);
                    subactividadPorActividadDTO2.setIdsubactividad_Subactividad((subactividadPorActividadTmp.getSubactividad()
                                                                                                            .getIdsubactividad() != null)
                        ? subactividadPorActividadTmp.getSubactividad()
                                                     .getIdsubactividad()
                                                     .toString() : null);
                    subactividadPorActividadDTO2.setSubactividadPorActividad(subactividadPorActividadTmp);
                    subactividadPorActividadDTO2.setSubactividadPorActividadView(this);
                    subactividadPorActividadDTO.add(subactividadPorActividadDTO2);
                }
            }

            // Remove this Renderable from the existing render groups.
            leaveRenderGroups();
        } catch (Exception e) {
            FacesContext.getCurrentInstance()
                        .addMessage("", new FacesMessage(e.getMessage()));
        }

        // Add this Renderable to the new render groups.
        joinRenderGroups();

        // Reset the dirtyData flag.
        onePageDataModel.setDirtyData(false);

        // This is required when using Hibernate JPA.  If the EntityManager is not
        // cleared or closed objects are cached and stale objects will show up
        // in the table.
        // This way, the detached objects are reread from the database.
        // This call is not required with TopLink JPA, which uses a Query Hint
        // to clear the l2 cache in the DAO.
        //EntityManagerHelper.getEntityManager().clear();
        flag = true;

        return new DataPage<SubactividadPorActividadDTO>(totalNumberSubactividadPorActividad,
            startRow, subactividadPorActividadDTO);
    }

    protected boolean isDefaultAscending(String sortColumn) {
        return true;
    }

    /**
     * This method is called when a render call is made from the server. Render
     * calls are only made to views containing an updated record. The data is
     * marked as dirty to trigger a fetch of the updated record from the
     * database before rendering takes place.
     */
    public PersistentFacesState getState() {
        onePageDataModel.setDirtyData();

        return state;
    }

    /**
     * This method is called from faces-config.xml with each new session.
     */
    public void setRenderManager(RenderManager renderManager) {
        this.renderManager = renderManager;
    }

    public void renderingException(RenderingException arg0) {
        if (arg0 instanceof TransientRenderingException) {
        } else if (arg0 instanceof FatalRenderingException) {
            // Remove from existing Customer render groups.
            leaveRenderGroups();
        }
    }

    /**
     * Remove this Renderable from existing uiCustomerBeans render groups.
     * OnDemandRenderers are named/created using the underlying Customer Number.
     */
    private void leaveRenderGroups() {
        if (Utilities.validationsList(subactividadPorActividadDTO)) {
            for (SubactividadPorActividadDTO subactividadPorActividadTmp : subactividadPorActividadDTO) {
                renderManager.getOnDemandRenderer(
                    "SubactividadPorActividadView").remove(this);
            }
        }
    }

    /**
     * Add this Renderable to the new uiCustomerBeans render groups.
     * OnDemandRenderers are named/created using the underlying Customer Number.
     */
    private void joinRenderGroups() {
        if (Utilities.validationsList(subactividadPorActividadDTO)) {
            for (SubactividadPorActividadDTO subactividadPorActividadTmp : subactividadPorActividadDTO) {
                renderManager.getOnDemandRenderer(
                    "SubactividadPorActividadView").add(this);
            }
        }
    }

    @Override
    public void dispose() throws Exception {
        // TODO Auto-generated method stub
    }

    public RenderManager getRenderManager() {
        return renderManager;
    }

    public void setState(PersistentFacesState state) {
        this.state = state;
    }

    public HtmlInputText getTxtAmbitosdeasignacion2() {
        return txtAmbitosdeasignacion2;
    }

    public void setTxtAmbitosdeasignacion2(
        HtmlInputText txtAmbitosdeasignacion2) {
        this.txtAmbitosdeasignacion2 = txtAmbitosdeasignacion2;
    }

    public HtmlInputText getTxtAmbitosdeasignacionenpf() {
        return txtAmbitosdeasignacionenpf;
    }

    public void setTxtAmbitosdeasignacionenpf(
        HtmlInputText txtAmbitosdeasignacionenpf) {
        this.txtAmbitosdeasignacionenpf = txtAmbitosdeasignacionenpf;
    }

    public HtmlInputText getTxtDefectosdealtaseveridad() {
        return txtDefectosdealtaseveridad;
    }

    public void setTxtDefectosdealtaseveridad(
        HtmlInputText txtDefectosdealtaseveridad) {
        this.txtDefectosdealtaseveridad = txtDefectosdealtaseveridad;
    }

    public HtmlInputText getTxtDefectosentregados() {
        return txtDefectosentregados;
    }

    public void setTxtDefectosentregados(HtmlInputText txtDefectosentregados) {
        this.txtDefectosentregados = txtDefectosentregados;
    }

    public HtmlInputText getTxtDefectosentregados2() {
        return txtDefectosentregados2;
    }

    public void setTxtDefectosentregados2(HtmlInputText txtDefectosentregados2) {
        this.txtDefectosentregados2 = txtDefectosentregados2;
    }

    public HtmlInputText getTxtEliminaciondedefectos() {
        return txtEliminaciondedefectos;
    }

    public void setTxtEliminaciondedefectos(
        HtmlInputText txtEliminaciondedefectos) {
        this.txtEliminaciondedefectos = txtEliminaciondedefectos;
    }

    public HtmlInputText getTxtIndicedeproduccionpf() {
        return txtIndicedeproduccionpf;
    }

    public void setTxtIndicedeproduccionpf(
        HtmlInputText txtIndicedeproduccionpf) {
        this.txtIndicedeproduccionpf = txtIndicedeproduccionpf;
    }

    public HtmlInputText getTxtIndicedeproduccionpf2() {
        return txtIndicedeproduccionpf2;
    }

    public void setTxtIndicedeproduccionpf2(
        HtmlInputText txtIndicedeproduccionpf2) {
        this.txtIndicedeproduccionpf2 = txtIndicedeproduccionpf2;
    }

    public HtmlInputText getTxtIndiceincrementocambiomensual() {
        return txtIndiceincrementocambiomensual;
    }

    public void setTxtIndiceincrementocambiomensual(
        HtmlInputText txtIndiceincrementocambiomensual) {
        this.txtIndiceincrementocambiomensual = txtIndiceincrementocambiomensual;
    }

    public HtmlInputText getTxtPotencialdedefectos1() {
        return txtPotencialdedefectos1;
    }

    public void setTxtPotencialdedefectos1(
        HtmlInputText txtPotencialdedefectos1) {
        this.txtPotencialdedefectos1 = txtPotencialdedefectos1;
    }

    public HtmlInputText getTxtPotencialdedefectos2() {
        return txtPotencialdedefectos2;
    }

    public void setTxtPotencialdedefectos2(
        HtmlInputText txtPotencialdedefectos2) {
        this.txtPotencialdedefectos2 = txtPotencialdedefectos2;
    }

    public HtmlInputText getTxtProbabilidaddereparacionesdefectuosas() {
        return txtProbabilidaddereparacionesdefectuosas;
    }

    public void setTxtProbabilidaddereparacionesdefectuosas(
        HtmlInputText txtProbabilidaddereparacionesdefectuosas) {
        this.txtProbabilidaddereparacionesdefectuosas = txtProbabilidaddereparacionesdefectuosas;
    }

    public HtmlInputText getTxtReutilizacion() {
        return txtReutilizacion;
    }

    public void setTxtReutilizacion(HtmlInputText txtReutilizacion) {
        this.txtReutilizacion = txtReutilizacion;
    }

    public HtmlInputText getTxtTamanoderequisitosencasosdeuso() {
        return txtTamanoderequisitosencasosdeuso;
    }

    public void setTxtTamanoderequisitosencasosdeuso(
        HtmlInputText txtTamanoderequisitosencasosdeuso) {
        this.txtTamanoderequisitosencasosdeuso = txtTamanoderequisitosencasosdeuso;
    }

    public HtmlInputText getTxtTamanoinicialdesubactv1() {
        return txtTamanoinicialdesubactv1;
    }

    public void setTxtTamanoinicialdesubactv1(
        HtmlInputText txtTamanoinicialdesubactv1) {
        this.txtTamanoinicialdesubactv1 = txtTamanoinicialdesubactv1;
    }

    public HtmlInputText getTxtTamanoinicialdesubactv2() {
        return txtTamanoinicialdesubactv2;
    }

    public void setTxtTamanoinicialdesubactv2(
        HtmlInputText txtTamanoinicialdesubactv2) {
        this.txtTamanoinicialdesubactv2 = txtTamanoinicialdesubactv2;
    }

    public HtmlInputText getTxtVolumenesdegraficos() {
        return txtVolumenesdegraficos;
    }

    public void setTxtVolumenesdegraficos(HtmlInputText txtVolumenesdegraficos) {
        this.txtVolumenesdegraficos = txtVolumenesdegraficos;
    }

    public HtmlInputText getTxtIdactividad_Actividades() {
        return txtIdactividad_Actividades;
    }

    public void setTxtIdactividad_Actividades(
        HtmlInputText txtIdactividad_Actividades) {
        this.txtIdactividad_Actividades = txtIdactividad_Actividades;
    }

    public HtmlInputText getTxtIdsubactividad_Subactividad() {
        return txtIdsubactividad_Subactividad;
    }

    public void setTxtIdsubactividad_Subactividad(
        HtmlInputText txtIdsubactividad_Subactividad) {
        this.txtIdsubactividad_Subactividad = txtIdsubactividad_Subactividad;
    }

    public SelectInputDate getTxtFechaestimadasubactFin() {
        return txtFechaestimadasubactFin;
    }

    public void setTxtFechaestimadasubactFin(
        SelectInputDate txtFechaestimadasubactFin) {
        this.txtFechaestimadasubactFin = txtFechaestimadasubactFin;
    }

    public SelectInputDate getTxtFechaestimadasubactInicio() {
        return txtFechaestimadasubactInicio;
    }

    public void setTxtFechaestimadasubactInicio(
        SelectInputDate txtFechaestimadasubactInicio) {
        this.txtFechaestimadasubactInicio = txtFechaestimadasubactInicio;
    }

    public SelectInputDate getTxtFechalimiteestimada() {
        return txtFechalimiteestimada;
    }

    public void setTxtFechalimiteestimada(
        SelectInputDate txtFechalimiteestimada) {
        this.txtFechalimiteestimada = txtFechalimiteestimada;
    }

    public HtmlInputText getTxtId() {
        return txtId;
    }

    public void setTxtId(HtmlInputText txtId) {
        this.txtId = txtId;
    }

    public HtmlCommandButton getBtnSave() {
        return btnSave;
    }

    public void setBtnSave(HtmlCommandButton btnSave) {
        this.btnSave = btnSave;
    }

    public HtmlCommandButton getBtnModify() {
        return btnModify;
    }

    public void setBtnModify(HtmlCommandButton btnModify) {
        this.btnModify = btnModify;
    }

    public HtmlCommandButton getBtnDelete() {
        return btnDelete;
    }

    public void setBtnDelete(HtmlCommandButton btnDelete) {
        this.btnDelete = btnDelete;
    }

    public HtmlCommandButton getBtnClear() {
        return btnClear;
    }

    public void setBtnClear(HtmlCommandButton btnClear) {
        this.btnClear = btnClear;
    }

    public void setRenderDataTable(boolean renderDataTable) {
        this.renderDataTable = renderDataTable;
    }

    public void setFlag(boolean flag) {
        this.flag = flag;
    }

    public List<SubactividadPorActividadDTO> getSubactividadPorActividadDTO() {
        return subactividadPorActividadDTO;
    }

    public void setSubactividadPorActividadDTO(
        List<SubactividadPorActividadDTO> subactividadPorActividadDTO) {
        this.subactividadPorActividadDTO = subactividadPorActividadDTO;
    }

    public TimeZone getTimeZone() {
        return java.util.TimeZone.getDefault();
    }

    /**
     * A special type of JSF DataModel to allow a datatable and datapaginator
     * to page through a large set of data without having to hold the entire
     * set of data in memory at once.
     * Any time a managed bean wants to avoid holding an entire dataset,
     * the managed bean declares this inner class which extends PagedListDataModel
     * and implements the fetchData method. fetchData is called
     * as needed when the table requires data that isn't available in the
     * current data page held by this object.
     * This requires the managed bean (and in general the business
     * method that the managed bean uses) to provide the data wrapped in
     * a DataPage object that provides info on the full size of the dataset.
     */
    private class LocalDataModel extends PagedListDataModel {
        public LocalDataModel(int pageSize) {
            super(pageSize);
        }

        public DataPage<SubactividadPorActividad> fetchPage(int startRow,
            int pageSize) {
            // call enclosing managed bean method to fetch the data
            return getDataPage(startRow, pageSize);
        }
    }

    private class LocalDataModelDTO extends PagedListDataModel {
        public LocalDataModelDTO(int pageSize) {
            super(pageSize);
        }

        public DataPage<SubactividadPorActividadDTO> fetchPage(int startRow,
            int pageSize) {
            // call enclosing managed bean method to fetch the data
            return getDataPageDTO(startRow, pageSize);
        }
    }
}
